<?php
/**
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled with this
 * package in the file LICENSE.txt. It is also available through the
 * world-wide-web at this URL: http://dragonjsonserver.de/license. If you did
 * not receive a copy of the license and are unable to obtain it through the
 * world-wide-web, please send an email to license@dragonjsonserver.de. So we
 * can send you a copy immediately.
 *
 * @copyright Copyright (c) 2012 DragonProjects (http://dragonprojects.de)
 * @license http://framework.zend.com/license/new-bsd New BSD License
 * @author Christoph Herrmann <developer@dragonjsonserver.de>
 */
?>
<h3>Version 1.11.1</h3>
<h4>Releasedatum: 11.01.2012</h4>
<h4>Geänderte Pakete</h4>
<ul>
    <li>
        DragonX
        <ul>
            <li>
                Clientmessage
                <ul>
                    <li>Es wurde ein Fehler behoben der auftrat man man eine Clientmessage in der Datenbank speichern wollte da die Methodensignatur der "toArray()" Methode nicht mehr mit der Änderung der Eigenschaftenklasse übereinstimmte</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
<h3>Version 1.11.0</h3>
<h4>Releasedatum: 10.01.2013</h4>
<h4>Geänderte Pakete</h4>
<ul>
    <li>
        Dragon
        <ul>
            <li>
                Application
                <ul>
                    <li>Die eigene Registryklasse erweitert Zend Registry um die Möglichkeit Callbackmethoden für einzelne Indexe zu setzen. Dadurch muss ein Wert nicht direkt gesetzt werden sondern kann als Rückgabewert der Callbackmethode definiert werden und wird somit automatisch beim ersten Aufruf auf den Index gesetzt</li>
                </ul>
            </li>
            <li>
                Plugin
                <ul>
                    <li>Plugins werden nun nur noch einmalig instanziert auch wenn man sie über verschiedene Pluginschnittstellen abruft</li>
                    <li>Plugins können nun auch über ihren eigenen Klassennamen per "getPlugin()" abgerufen werden</li>
                </ul>
            </li>
        </ul>
    </li>
    <li>
        DragonX
        <ul>
            <li>
                Account
                <ul>
                    <li>Accountlöschung überarbeitet sodass nun über Plugins in den jeweiligen Paketen alle Daten mitgelöscht werden die an einem Account hängen</li>
                </ul>
            </li>
            <li>
                Application
                <ul>
                    <li>Die Eigenschaftsklasse wurde um Caching erweitert für die Bestimmung ob ein Attribut public ist. Dadurch werden Reflectionaufrufe erspart was bei Performancetests etwa 60% Performancegewinn erbrachte</li>
                    <li>Es wurde ein Fehler behoben der auftrat wenn man von einem Objekt einer Eigenschaftenklasse Attribute abfragte die nicht vorhanden waren</li>
                </ul>
            </li>
            <li>
                Clientmessage
                <ul>
                    <li>Es ist nun möglich direkt im aktuellen Request Clientmessages zu erstellen die der aktuellen Response mitgegeben werden statt erst in den nachfolgenden Requests</li>
                </ul>
            </li>
            <li>
                Cronjob
                <ul>
                    <li>Es gibt nun einen Service mit dem der Zeitpunkt der nächsten Ausführung eines Cronjobplugins abgefragt werden kann</li>
                </ul>
            </li>
            <li>
                Emailaddress
                <ul>
                    <li>Bei der Entfernung einer Verknüpfung eines Accounts mit E-Mail Adresse und Passwort werden nun auch Anfragen für Validierung und Passwort vergessen mitentfernt</li>
                </ul>
            </li>
            <li>
                Storage
                <ul>
                    <li>Die Record Liste erlaubt nun das Befüllen mit Arraydaten und einem Record als Vorlage über den Konstruktur und der "fromArray()" Methode</li>
                    <li>Bei Transaktionen wird nun ein Zähler verwendet für die Anzahl der verschachtelten Transaktionen. Somit entfällt das Auswerten ob eine Transaktion bei "beginTransaction()" begonnen wurde. Des Weiteren hat sich die Rückgabe der Methoden "commit()" und "rollback()" geändert. Diese geben nun zurück ob die jeweilige Aktion gemacht wurde oder nicht</li>
                    <li>Es wurde ein Fehler behoben durch den man beim Speichern von geklonten Records eine Ausnahme bekommen hat weil das Attribut "id" nicht mehr vorhanden war</li>
                    <li>Durch die eigene Registryklasse wird eine Datenbankverbindung nur einmalig aufgebaut wenn diese auch benötigt wird</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
<h4>JsonClient</h4>
<ul>
    <li>Der "error" Callbackmethode steht nun ebenso das JsonRequest Objekt zur Verfügung wie der "success" Callbackmethode</li>
</ul>
<h4>DragonJsonClient</h4>
<ul>
    <li>Die Ausgaben und Fehlermeldungen der Services werden nun maskiert um XSS zu verhindern</li>
    <li>Die URI wird nun bei jeder Änderung des Namensraums, der Methode oder eines Argumentes generiert statt nur beim Absenden der Anfrage</li>
</ul>
<h2>Migration vom Branch 1.10</h2>
<h3>Benötigt</h3>
<ul>
    <li>Verkettete Methodenaufrufe bei der Storage Engine mit "commit()" oder "rollback()" müssen aufgelöst werden, da die Methoden nun als Rückgabe ein Boolean haben ob die jeweilige Aktion durchgeführt wurde oder nicht</li>
    <li>Bei der Nutzung von Transaktionen muss nun immer "commit()" oder "rollback()" aufgerufen werden, nicht mehr nur bei erfolgreichem Start der Transaktion. Daher müssen die Prüfungen des Rückgabewertes von "beginTransaction()" entfernt werden</li>
    <li>Das Format zur Definition der Storage Engines wurde überarbeitet. Es wird nun in der Einstellungsdatei nicht direkt die Storage Engine instanziert sondern eine Callbackmethode definiert in dieser die Instanzierung erfolgt</li>
</ul>
